package sanrenxing.score.dao;

import sanrenxing.score.domain.Score;
import sanrenxing.score.domain.ScoreTo;

import java.util.List;

/**
 * 功能:
 * 编写者:
 * 创建时间：2020/9/25 19:05
 * 版本:
 */
public interface ScoreDao {
    /**
     * 将成绩实体对象添加到数据库score表中
     * @param score 成绩对象
     * @return 成功添加的行数(1:添加成功;0:添加失败)
     */
    public int add(Score score);

    /**
     * 根据成绩编号主键从数据库score表中删除指定成绩数据
     * @param scoreId 成绩编号主键
     * @return 删除影响的行数(1:删除成功;0:删除失败)
     */
    public int delete(int scoreId);

    /**
     * 将成绩对象数据修改到数据库score表中
     * @param score 成绩对象
     * @return 修改影响的行数(1:修改成功;0:修改失败)
     */
    public int update(Score score);

    /**
     * 根据成绩编号主键从数据库score表中查找单个成绩
     * @param scoreId 哼唧编号主键
     * @return 成绩对象(如果返回null值，表示查找失败)
     */
    public Score findById(int scoreId);

    /**
     * 查询数据库score表中所有成绩
     * @return 成绩对象集合
     */
    public List<Score> findAll();

    /**
     * 从数据库score表中查询指定页的成绩对象集合
     * @param rows 每页的成绩行数
     * @param pages 页数
     * @return 当前页的成绩对象集合
     */
    public List<ScoreTo> findByPage(int rows, int pages, String condition);

    /**
     * 统计数据库score表中记录总数
     * @return 成绩表中记录总数
     */
    public int count();


    /**
     * 条件统计
     * @param condition 条件
     * @return
     */
    public int count(String condition);

    /**
     * 获取查询条件
     * @param score 成绩对象
     * @return 条件字符串
     */
    public String getCondition(Score score);

    /**
     * 通过班级名称查询班级编号
     * @param className
     * @return
     */
    public int findClassName(String className);

    /**
     * 通过学员名字查询学员编号
     * @param stuName
     * @return
     */
    public String findStuName(String stuName);

    /**
     * 通过课程名称查询课程编号
     * @param courseName
     * @return
     */
    public int findCourseName(String courseName);

    /**
     * 通过成绩编号查询学员编号
     * @param scoreId
     * @return
     */
    public String findStuId(int scoreId);

    /**
     * 修改学员成绩为60以上  则删除补考学员的信息
     * @param stuId
     */
    public void deleteGrades(String stuId);

    /**
     * 添加补考信息
     * @param stuId
     * @param courseId
     */
    public void addReexamsMsg(String stuId,int courseId);


}
